import { defineConfig,loadEnv } from 'vite'
import initPlugins from './vite/plugins'
import initServer from './vite/server'
import path from 'path';
import pxtovw from "postcss-px-to-viewport";

// https://vitejs.dev/config/
export default defineConfig(({ mode, command }) => {
  const env = loadEnv(mode, process.cwd());

  // 打包取当前时间为版本时间
  const CurrentTimeVersion = new Date().getTime();

  return {
    define: {
      // 定义版本时间全局变量
      "process.env.VITE__APP_VERSION__": CurrentTimeVersion
		},
    plugins: initPlugins(env, command === 'build', CurrentTimeVersion),
    base: '/',
    server: initServer(env),
    resolve: {
      alias: {
        // 设置路径
        '~': path.resolve(__dirname, './'),
        // 设置别名
        '@': path.resolve(__dirname, './src'),
        // 设置types
        '#': path.resolve(__dirname, './types'),
      },
    },
    build: {
      rollupOptions: {
        output: {
          manualChunks(id) {
            if (id.includes('element-plus/theme')) {
              return 'ele';
            }
          },
        },
      },
      outDir: 'dist'
    },
    css: {
      preprocessorOptions: {
        scss: {
          additionalData: '@import "./src/styles/var.scss";',
          javascriptEnabled: true,
        },
      },
       postcss: {
        //给postcss-loader传递选项
        plugins: [
          // pxtovw({
          //   unitToConvert: "px", //需要转换的单位，默认为"px"；
          //   viewportWidth: 375, //设计稿的视口宽度 
          //   unitPrecision: 5, //单位转换后保留的小数位数
          //   propList: ["*"], //要进行转换的属性列表,*表示匹配所有,!表示不转换
          //   viewportUnit: "vw", //转换后的视口单位
          //   fontViewportUnit: "vw", //转换后字体使用的视口单位
          //   selectorBlackList: ['wrap'], //不进行转换的css选择器，继续使用原有单位
          //   minPixelValue: 1, //设置最小的转换数值
          //   mediaQuery: false, //设置媒体查询里的单位是否需要转换单位
          //   replace: true, //是否直接更换属性值，而不添加备用属性
          //   // exclude: [/node_modules/], //忽略某些文件夹下的文件
          // }),
        ],
      },
    },
    optimizeDeps: {
     
    },
  }
})
